package com.glut.campusrepair.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glut.campusrepair.dto.MaintenanceLongRecordsdto;
import com.glut.campusrepair.dto.MaintenanceRecordsdto;
import com.glut.campusrepair.dto.MaintenanceShortRecordsdto;
import com.glut.campusrepair.entity.MaintenanceRecords;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
*  Mapper
*
* @author QJC
* @since 2024-07-22 00:26
*/
@Mapper
public interface MaintenanceRecordsMapper extends BaseMapper<MaintenanceRecords> {
    // 批量删除方法声明
    void deleteByIds(List<Integer> ids);

    void deleteById(Integer id);

    void update(MaintenanceRecordsdto maintenanceRecordsdto);


    /**
     * 根据当前登录用户ID查询这个用户报修的所有未评价的简洁版维修记录
     * 展示在维修记录卡片中
     */
    List<MaintenanceShortRecordsdto> selectByUserNo_11(Integer userNo);


    /**
     * 根据维修记录ID查找详细版维修记录
     *
     * @param maintenanceRecordsId
     * @return 记录信息
     */
    MaintenanceLongRecordsdto selectByPrimaryKey_2(Integer maintenanceRecordsId);


    /**
     * 根据当前登录用户ID查询这个用户报修的所有未评价的简洁版维修记录
     * 展示在维修记录卡片中
     */
    List<MaintenanceShortRecordsdto> selectByUserNo_12(Integer userNo);

    /**
     * 根据主键id查询
     *
     * @param maintenanceRecordsId
     * @return 记录信息
     */
    MaintenanceRecords selectByPrimaryKey(Integer maintenanceRecordsId);

    /**
     * 根据主键删除数据
     *
     * @param maintenanceRecordsId
     * @return 数量
     */
    int deleteByPrimaryKey(Integer maintenanceRecordsId);

    /**
     * 插入数据库记录（不建议使用）
     *
     * @param record
     */
    int insert(MaintenanceRecords record);

    /**
     * 插入数据库记录（建议使用）
     *
     * @param record 插入数据
     * @return 插入数量
     */
    int insertSelective(MaintenanceRecords record);

    /**
     * 修改数据(推荐使用)
     *
     * @param record 更新值
     * @return 更新数量
     */
    int updateByPrimaryKeySelective(MaintenanceRecords record);

    /**
     * 根据主键更新数据
     *
     * @param record 更新值
     * @return 更新数量
     */
    int updateByPrimaryKeyWithBLOBs(MaintenanceRecords record);

    /**
     * 根据主键更新数据
     *
     * @param record 更新值
     * @return 更新数量
     */
    int updateByPrimaryKey(MaintenanceRecords record);
}
